﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, DesignerCategory("code"), XmlType(Namespace="http://www.onvif.org/ver10/schema"), GeneratedCode("svcutil", "3.0.4506.2152"), DebuggerStepThrough]
    public class Profile
    {
        private XmlAttribute[] anyAttrField;
        private TestTool.Proxies.Onvif.AudioEncoderConfiguration audioEncoderConfigurationField;
        private TestTool.Proxies.Onvif.AudioSourceConfiguration audioSourceConfigurationField;
        private ProfileExtension extensionField;
        private bool fixedField;
        private bool fixedFieldSpecified;
        private TestTool.Proxies.Onvif.MetadataConfiguration metadataConfigurationField;
        private string nameField;
        private TestTool.Proxies.Onvif.PTZConfiguration pTZConfigurationField;
        private string tokenField;
        private TestTool.Proxies.Onvif.VideoAnalyticsConfiguration videoAnalyticsConfigurationField;
        private TestTool.Proxies.Onvif.VideoEncoderConfiguration videoEncoderConfigurationField;
        private TestTool.Proxies.Onvif.VideoSourceConfiguration videoSourceConfigurationField;

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlElement(Order=4)]
        public TestTool.Proxies.Onvif.AudioEncoderConfiguration AudioEncoderConfiguration
        {
            get
            {
                return this.audioEncoderConfigurationField;
            }
            set
            {
                this.audioEncoderConfigurationField = value;
            }
        }

        [XmlElement(Order=2)]
        public TestTool.Proxies.Onvif.AudioSourceConfiguration AudioSourceConfiguration
        {
            get
            {
                return this.audioSourceConfigurationField;
            }
            set
            {
                this.audioSourceConfigurationField = value;
            }
        }

        [XmlElement(Order=8)]
        public ProfileExtension Extension
        {
            get
            {
                return this.extensionField;
            }
            set
            {
                this.extensionField = value;
            }
        }

        [XmlAttribute]
        public bool @fixed
        {
            get
            {
                return this.fixedField;
            }
            set
            {
                this.fixedField = value;
            }
        }

        [XmlIgnore]
        public bool fixedSpecified
        {
            get
            {
                return this.fixedFieldSpecified;
            }
            set
            {
                this.fixedFieldSpecified = value;
            }
        }

        [XmlElement(Order=7)]
        public TestTool.Proxies.Onvif.MetadataConfiguration MetadataConfiguration
        {
            get
            {
                return this.metadataConfigurationField;
            }
            set
            {
                this.metadataConfigurationField = value;
            }
        }

        [XmlElement(Order=0)]
        public string Name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        [XmlElement(Order=6)]
        public TestTool.Proxies.Onvif.PTZConfiguration PTZConfiguration
        {
            get
            {
                return this.pTZConfigurationField;
            }
            set
            {
                this.pTZConfigurationField = value;
            }
        }

        [XmlAttribute]
        public string token
        {
            get
            {
                return this.tokenField;
            }
            set
            {
                this.tokenField = value;
            }
        }

        [XmlElement(Order=5)]
        public TestTool.Proxies.Onvif.VideoAnalyticsConfiguration VideoAnalyticsConfiguration
        {
            get
            {
                return this.videoAnalyticsConfigurationField;
            }
            set
            {
                this.videoAnalyticsConfigurationField = value;
            }
        }

        [XmlElement(Order=3)]
        public TestTool.Proxies.Onvif.VideoEncoderConfiguration VideoEncoderConfiguration
        {
            get
            {
                return this.videoEncoderConfigurationField;
            }
            set
            {
                this.videoEncoderConfigurationField = value;
            }
        }

        [XmlElement(Order=1)]
        public TestTool.Proxies.Onvif.VideoSourceConfiguration VideoSourceConfiguration
        {
            get
            {
                return this.videoSourceConfigurationField;
            }
            set
            {
                this.videoSourceConfigurationField = value;
            }
        }
    }
}

